using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;

namespace Gko.Wpf.Mvvm.Interfaces
{
	public interface IViewFactory
	{
		[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter")]
		void AttachViewModelToView<TViewModel, TView>() where TViewModel : class, IViewModel where TView : FrameworkElement;
		FrameworkElement CreateView<TViewModel>(TViewModel viewModel) where TViewModel : class, IViewModel;
		void InitializeView<TViewModel>(FrameworkElement view, TViewModel viewModel) where TViewModel : class, IViewModel;
	}
}